package com.oa.co.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.oa.co.bo.StudentBo;
import com.oa.co.pojo.UserOa;
import com.oa.co.service.UserOaService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * @date 2023/5/4
 * @desc
 */
// @Component 为啥加这个注解 因为 它 即不属于Controller 也不属于 Service 层
// 且必须 要 把监听器 改成 多例模式 即加注解    @Scope("prototype")
@Component
@Scope("prototype")     // 注意 这里要设置成多例模式
public class WebStudentListener extends AnalysisEventListener<StudentBo> {

    @Autowired
    UserOaService userOaService;

    @Override
    public void invoke(StudentBo data, AnalysisContext context) {
        //每读取一行数据  都会调用这个方法
        System.out.println(data);
        UserOa userOa = new UserOa();
        //属性拷贝方法
        BeanUtils.copyProperties(data,userOa);

        userOaService.addStudent(userOa);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {

        //把集合存入数据库
    }
}
